"""
宿舍电费公平分摊
这个月的宿舍电费花了500元，宿舍有10个人，大家要凑够100元来缴纳这个电费。
为了公平起见，按照每个人的用电器功率和每天用电时间计算比率。
设计一个程序，让大家输入自己的用电器功率（有1到多个电器）以及对应的平均每天使用时间，结束一个人输入后打印该同学的用电总功率，
最后按比率计算每个人应出多少钱。

提示：
1. 你可以使用一个循环来收集每个室友的用电信息。每次循环中，再使用一个子循环来收集该室友的所有用电器的功率和使用时间，当捕获到非用电信息时（即非数字）结束循环。
2. 用电总功耗可以通过功率乘以使用时间得到。所有室友的用电总功耗之和就是宿舍的总功耗。
3. 每个室友应缴纳的电费 = (该室友的总功耗 / 宿舍的总功耗) * 500元。
"""
def ele(total,num):
    a=0.0
    lis=[]
    for i in range(1,num+1):
        print(f"\n输入第{i}个室友用电信息：")
        consumption=0.0
        while True:
            p=input("输入用电功率：")
            if not p.replace('.',' ',1).isdigit():
                break
            p=float(p)
            t=input("输入用电时间：")
            if not t.replace('.',' ',1).isdigit():
                continue
            t=float(p)
            if t<0:
                print("输入时间不正确，请重新输入：")
                continue
            g=p*t
            consumption+=g
            print(f"第{i}个室友用电功耗为{consumption}")
            a+=g
            lis.append(consumption)
    print(f"总功耗为{a}")
    print("每个室友应交的费用为：")
    for i,c in enumerate(lis,1):
        s=(c/a)*total
        print(f"第{i}个室友应交的电费为{s}")
if __name__ == "__main__":
    T=100
    N=10
    ele(T,N)


